<?php
namespace Classes;

class Db {
    private $cnx;
    
    /**
     * Etablit la connexion à la base de données
     */
    public function __construct() {
        require dirname(dirname(__FILE__)).'/config/config.php';
        $this->cnx = $this->connect($db['host'], $db['dbname'], $db['user'], $db['password'], $db['port']);
    }
    
    /**
    * Retourne un instance de connexion à la base
    * @param string $host : Nom du serveur
    * @param string $dbname : Nom de la base de données
    * @param string $user : Utilisateur de la base de données
    * @param string $password : Mot de passe de l'utilisateur
    * @param int $port : Port du serveur
    * @return \PDO
    */
   private function connect($host="localhost", $dbname="oneimmo", $user="root", $password="", $port='') {
       try {
           if($port) {
               $dsn = "mysql:host=$host;dbname=$dbname;port=$port";
           } else {
               $dsn = "mysql:host=$host;dbname=$dbname";
           }
           $options= array(
               \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
               \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION
           );
           return new \PDO($dsn, $user, $password, $options);
       } 
       catch (Exception $ex) {
           echo 'ERREUR PDO dans ' . $ex->getFile() . ' L.' . $ex->getLine() . ' : ' . $ex->getMessage();
       }
   }
   
   /**
    * Retourne la connexion etablie
    * @return \PDO
    */
   public function getConnexion() {
       return $this->cnx;
   }
}

